package org.jeecg.modules.asset.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 设备资产台账
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class EquipmentAssetEntity implements Serializable {
    private static final long serialVersionUID = 1L;

	/**资产编码*/
	@Excel(name = "资产编码", width = 15, groupName = "基本信息")
	private String assetCode;
	/**资产名称*/
	@Excel(name = "资产名称", width = 15, groupName = "基本信息")
	private String assetName;
	/**资产类型*/
	@Excel(name = "资产类型", width = 15, dicCode = "asset_all_code", groupName = "基本信息")
	@Dict(dicCode = "asset_all_code")
	@ApiModelProperty(value = "资产类型")
	private java.lang.String assetType;
	/**设备分类（大分类，如：暖通空调、电梯系统、消防系统）*/
	@Excel(name = "设备分类", width = 15, dicCode = "asset_equip_type", groupName = "基本信息")
	@Dict(dicCode = "asset_equip_type")
	private java.lang.String equipmentCategory;
	/**所属资产*/
	@Excel(name = "所属资产", width = 15, dicCode = "belong_asset", groupName = "基本信息")
	@Dict(dicCode = "belong_asset")
	private String belongAsset;
	/**所属公司*/
	@Excel(name = "所属公司", width = 15,dicCode = "asset_company", groupName = "基本信息")
	@Dict(dicCode = "asset_company")
	private String company;
	/**所属空间（关联space_asset表的space_code，实现设备-空间归属）*/
	@Excel(name = "所属空间", width = 15, dictTable = "asset_message", dicText = "asset_name", dicCode = "id", groupName = "基本信息")
	@Dict(dictTable = "asset_message", dicText = "asset_name", dicCode = "id")
	private java.lang.String belongSpaceCode;
	/**详细地址 / 存放位置*/
	@Excel(name = "存放位置", width = 15, groupName = "基本信息")
	@ApiModelProperty(value = "详细地址（地理位置描述，如：XX市XX区XX路XX号）")
	private String place;
	/**资产状态（如：自用、出租、闲置、待租、装修中、已停用）*/
	@Excel(name = "资产状态", width = 15, dicCode = "all_asset_status", groupName = "基本信息")
	@Dict(dicCode = "all_asset_status")
	@ApiModelProperty(value = "资产状态（如：自用、出租、闲置、待租、装修中、已停用）")
	private String status;
	/**负责人*/
	@Excel(name = "负责人", width = 15, groupName = "基本信息")
	@ApiModelProperty(value = "负责人")
	private String chargePerson;
	/**负责人联系电话*/
	@Excel(name = "联系电话", width = 15, groupName = "基本信息")
	@ApiModelProperty(value = "联系电话")
	private String chargeMobile;




	/**品牌（如：奥的斯(OTIS)、格力）*/
	@Excel(name = "品牌", width = 15, groupName = "技术规格")
	private String brand;
	/**规格型号（设备具体型号）*/
	@Excel(name = "规格型号", width = 15, groupName = "技术规格")
	private String model;
	/**技术参数*/
	@Excel(name = "技术参数", width = 15, groupName = "技术规格")
	private String technicalParams;
	/**制造商（生产厂家名称）*/
	@Excel(name = "制造商", width = 15, groupName = "技术规格")
	private String manufacturer;
	@Excel(name = "国别", width = 15, groupName = "技术规格")
	private String country;
	/**出厂编号（设备序列号S/N）*/
	@Excel(name = "出厂编号", width = 15, groupName = "技术规格")
	private String factorySerial;
	/**出厂日期（设备生产日期）*/
	@Excel(name = "出厂日期", width = 15, format = "yyyy-MM-dd", groupName = "技术规格")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date factoryDate;



	/**供应商（设备提供方）*/
	@Excel(name = "供应商", width = 15, groupName = "采购和价值")
	private String supplier;
	/**采购日期（购买日期）*/
	@Excel(name = "采购日期", width = 15, format = "yyyy-MM-dd", groupName = "采购和价值")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date purchaseDate;
	/**合同编号（采购合同编号）*/
	@Excel(name = "合同编号（采购合同编号）", width = 15, groupName = "采购和价值")
	private String contractCode;
	/**账面原值（原始成本，单位：元，保留2位小数）*/
	@Excel(name = "账面原值（元）", width = 15, groupName = "采购和价值")
	private BigDecimal bookOriginalValue;
	/**账面净值（当前财务净值，单位：元，保留2位小数）*/
	@Excel(name = "账面净值（元）", width = 15, groupName = "采购和价值")
	private BigDecimal bookNetValue;
	/**折旧起始年月*/
	@Excel(name = "折旧起始年月", width = 15, format = "yyyy-MM-dd", groupName = "采购和价值")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date depreciationStartDate;
	/**保修截止日期（保修失效日期）*/
	@Excel(name = "保修截止日期", width = 15, format = "yyyy-MM-dd", groupName = "采购和价值")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date warrantyEndDate;



	/**维保状态（如：正常、待维保、维保中、故障）*/
	@Excel(name = "维修状态", width = 15, dicCode = "maintenance_status", groupName = "维修信息")
	@Dict(dicCode = "maintenance_status")
	private String maintenanceStatus;
	/**维保服务商（提供维保的公司/个人）*/
	@Excel(name = "维修服务商", width = 15, groupName = "维修信息")
	private String maintenanceCompany;
	@Excel(name = "维修合同", width = 15, groupName = "维修信息")
	private String repairContract;
	/**上次维保日期（最近一次维保时间）*/
	@Excel(name = "上次维修日期", width = 15, format = "yyyy-MM-dd", groupName = "维修信息")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date lastMaintenanceDate;
	/**下次维保日期（计划维保时间）*/
	@Excel(name = "下次维修日期", width = 15, format = "yyyy-MM-dd", groupName = "维修信息")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date nextMaintenanceDate;
	/**检验日期*/
	@Excel(name = "检验日期", width = 15, format = "yyyy-MM-dd", groupName = "维修信息")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date inspectDate;


	/**备注（补充说明信息）*/
	@Excel(name = "备注", width = 15)
	private String remark;

}
